package factoryService;


import service.AgendaService;
import service.CategoriaService;
import service.DespesaService;
import service.MetaDespesaService;
import service.MetaReceitaService;
import service.ParcelaDespesaService;
import service.ParcelaReceitaService;
import service.ReceitaService;
import service.UsuarioService;
import serviceImpl.AgendaServiceImpl;
import serviceImpl.CategoriaServiceImpl;
import serviceImpl.DespesaServiceImpl;
import serviceImpl.MetaDespesaServiceImpl;
import serviceImpl.MetaReceitaServiceImpl;
import serviceImpl.ParcelaDespesaServiceImpl;
import serviceImpl.ParcelaReceitaServiceImpl;
import serviceImpl.ReceitaServiceImpl;
import serviceImpl.UsuarioServiceImpl;

public class FactoryService {
	private static UsuarioService usuarioService;
	private static CategoriaService categoriaService;
	private static MetaReceitaService metaReceitaService;
	private static MetaDespesaService metaDespesaService;
	private static ReceitaService receitaService;
	private static DespesaService despesaService;
	private static ParcelaReceitaService parcelaReceitaService;
	private static ParcelaDespesaService parcelaDespesaService;
	private static AgendaService agendaService;
	
	private FactoryService() {
	}

	public static UsuarioService getUsuarioService() {
		if (usuarioService == null) {
			return usuarioService = new UsuarioServiceImpl();
		}
		return usuarioService;
	}

	public static CategoriaService getCategoriaService() {
		if (categoriaService == null) {
			return categoriaService = new CategoriaServiceImpl();
		}
		return categoriaService;
	}

	public static MetaReceitaService getMetaReceitaService() {
		if (metaReceitaService == null) {
			return metaReceitaService = new MetaReceitaServiceImpl();
		}
		return metaReceitaService;
	}

	public static MetaDespesaService getMetaDespesaService() {
		if (metaDespesaService == null) {
			return metaDespesaService = new MetaDespesaServiceImpl();
		}
		return metaDespesaService;
	}

	public static ReceitaService getReceitaService() {
		if (receitaService == null) {
			return receitaService = new ReceitaServiceImpl();
		}
		return receitaService;
	}

	public static DespesaService getDespesaService() {
		if (despesaService == null) {
			return despesaService = new DespesaServiceImpl();
		}
		return despesaService;
	}

	public static ParcelaReceitaService getParcelaReceitaService() {
		if (parcelaReceitaService == null) {
			return parcelaReceitaService = new ParcelaReceitaServiceImpl();
		}
		return parcelaReceitaService;
	}

	public static ParcelaDespesaService getParcelaDespesaService() {
		if (parcelaDespesaService == null) {
			return parcelaDespesaService = new ParcelaDespesaServiceImpl();
		}
		return parcelaDespesaService;
	}
	
	public static AgendaService getAgendaService() {
		if (agendaService == null) {
			return agendaService = new AgendaServiceImpl();
		}
		return agendaService;
	}
	
}